<?php

/**
 * @author Laurent SITTLER <lolo.sittler@gmail.com>
 * @author Alexandre GOMEZ <gomez.alexandre02@gmail.com>
 * @version 0.1
 */
require_once 'User_Model.php';
require_once 'Library/User.php';

/**
 * Login Model Class
 */
class Login_Model extends Model {

    /**
     * Constructor
     */
    function __construct() {
        parent::__construct();
    }

    /**
     * Check Login
     */
    public function run() {
        if (Session::Get(Constants::$SESSION_error) != NULL)
            Session::Destroy(Constants::$SESSION_error);

        if (isset($_POST['login']) && isset($_POST['passwd']) && !empty($_POST['login']) && !empty($_POST['passwd'])) {
            $chk = new User_Model();
            // If Login with Password exists
            if (($chk->CountUser($_POST['login'], $_POST['passwd'])) == 1) {
                $cid = $chk->GetUserLogin($_POST['login'], $_POST['passwd']);
                // If account is Actived or NOT
                if ($chk->GetStatusbyId($cid) != 0) {
                    Session::Set(Constants::$SESSION_cuser, $cid);
                    $chk->UpdateLastLog(Session::Get($cid));
                    $chk->User_Log($cid, $_SERVER["REMOTE_ADDR"], 'Connexion sur l\'interface');
                    header('location: ' . $GLOBALS['conf']['interface']['url']);
                    exit;
                } else {
                    Session::Set(Constants::$SESSION_error, 'Ce compte est désactivé. Veuillez contacter un administrateur en cas de problèmes.');
                    $chk->User_Log($cid, $_SERVER["REMOTE_ADDR"], 'Echec de connexion. L\'utilisateur dispose d\'un compte d&eacute;sactiv&eacute;.');
                    header('location: ' . $GLOBALS['conf']['interface']['url'] . 'login');
                    exit;
                }
            } else {
                $chk->User_Log(1, $_SERVER["REMOTE_ADDR"], 'Echec de connexion. Login ou mot de passe incorrect (' . $_POST['login'] . ')');
                Session::Set(Constants::$SESSION_error, 'Login ou mot de passe incorrect !');
                header('location: ' . $GLOBALS['conf']['interface']['url'] . 'login');
                exit;
            }
        } else {
            Session::Set(Constants::$SESSION_error, 'Veuillez compléter le champs Login et mot de passe.');
        }
    }

}
